package edu.njust.dao;

import edu.njust.pojo.Course;
import edu.njust.pojo.Klass;
import edu.njust.pojo.Message;
import edu.njust.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    //1 根据id查询用户
    User getUserById(String id);

    //2 通过名字加类型查找用户id列表（like）
    List<String> getUserIdListLikeNameAndType(@Param("name") String name, @Param("type") Integer type);

    //3 通过课程名查找课程idList（like）
    List<String> getCourseIdListLikeName(@Param("coursename") String course_name);

    //4 通过名字加类型找用户
    List<User> getUserByNameAndType(@Param("name") String name, @Param("type") Integer type);

    //5 通过id查班级id
    String getKlassIdById(String id);

    //6
    List<Klass> getKlassListByKlassIdList(List<String> klassIdList);

    //7
    List<User> getUserListByIdList(List<String> student_id_list);

    //8 通过老师id查课程list
    List<Course> getCourseListByTeacherId(String id);

    //9 班级id查课程（list）
    List<Course> getCourseListByKlassId(String id);

    //10 老师id和课程名找班级id
    List<String> getKlassIdByTeacherIdAndCourseName(@Param("id") String id, @Param("name") String name);

    //11 通过课程id找班级id
    String getKlassIdByCourseId(String course_id);

    //12 通过课程名找课程id
    List<String> getCourseIdListByCourseName(String name);

    //13 通过班级id找班级
    Klass getKlassByKlassId(String id);

    //14 通过班级list找userlist
    List<User> getUserListByClassList(List<Klass> klassList);

    //15 增加一条信息
    void addMessage(@Param("message") Message message);

    //16 找到所有发给自己的信息
    List<Message> showAllMessage(@Param("receive_user") String receive_user);

    //17 找到message表里最后一条数据的id
    Long getLastMessageId();


    //18获取所有课程信息
    List<Course> getAllCourseList();

    //19通过老师idLIst和课程名的关键字查询课程信息 （like语句）
    List<Course> getCourseListByInformation(@Param("list")List<String> teacher_name_list, @Param("course_name")String course_name);

}
